(function(){

  Ext.extend(
      Ext.ux.MsgBus = function(config){ 
           Ext.apply(this,config||{});
           Ext.ux.MsgBus.superclass.constructor.call(this); 
      },    
      Ext.util.Observable,
     {
        events :  {},
        publish : function(topic /* ,variable arguments ,,, */  ){
             var t= String(topic);
             this.events[t] || (this.addEvents(t));
             return this.fireEvent.apply(this, [t].concat(Array.prototype.slice.call(arguments,1)));
        }
     
   });
   var uxp = Ext.ux.MsgBus.prototype;
   Ext.apply(uxp,{
      subscribe    : uxp.on,
      unsubscribe  : uxp.un,
      destroy      : uxp.purgeListeners
   });
})() 
